home *** CD-ROM | disk | FTP | other *** search
- Limbo(1) Limbo Manual Page Limbo(1)
-
-
- NAME
-
- limbo - fast 2D/3D fractal image compression
-
- SYNOPSIS
-
- limbo2d [-options] <command> <filename>
- limbo3d [-options] <command> <filename>
-
- DESCRIPTION
-
- Limbo is a very fast fractal image object encoder. It
- encodes an input image by approximating it with a set of
- affine contractive mappings - the fractal code.
-
- The current version can briefly be summarized with these
- features:
-
- Current features:
-
- o Complete very fast encoding of images or sequences of
- images.
-
- o Full storing, retrieving and decoding of the fractal
- code in a general interchange format.
-
- o A special n-dimensional feature space search technique
- to reduce the encoding time.
-
- o Quadtree encoding using n-levels.
-
- o Decode expansion at any level (i.e. 2, 4, 8...times
- original size).
-
-
- Missing features:
-
- o Automatic entropy coding of file.
-
- o Better handling of different image file-format
- (currently only support PGM/PPM).
-
- o And: all the bug-fixing.
-
- Image input and output is in the PPM (color) or PGM (grey
- level) format (Jef Poskanzers bitmap format, email: jef@
- well.sf.ca.us). The output from the encoder is in a special
- 'limbo' fractal format (*.lmb).
-
-
- COMMANDS
-
- e Encode an image object:
-
- This command takes an image object and encodes it.
-
- d Decode an image object:
-
- The decoding of an image object is done by iteration on
- the fractal affine transformations loaded from the
- fractal code.
-
- v View fractal code information:
-
- Displays information stored in the fractal code like
- compression ratio, encoding signal-to-noise ratio (PSNR)
- and encoding time.
-
- a Analyze a fractal code:
-
- Produces specific output images of the partitioning,
- error and distribution of shade and edge blocks. Very
- useful for evaluation the performance of the encoder.
- This option is only implemented for the 2D encoding.
-
-
- OPTIONS
-
- -q Be quiet.
-
- -x<n> Maximum x size of the input image object.
-
- -y<n> Maximum y size of the input image object.
-
- -z<n> Maximum depth of an image sequence.
-
- -ox<n> Offset on the x axis. Default value=0
-
- -oy<n> Offset on the y axis. Default value=0
-
- -b<n> Smallest range block size. Typical 4 for 2D encoding
- and 3 for 3D encoding. 2D default value=4, 3D
- default value=2
-
- -d<n> Domain slide step size. With a small step the domain
- pool gets large and the image quality is generally
- increased, but at the expense of lower compression
- ratio. 2D default value=8, 3D default value=4
-
- -m<n> Minimum numbers of domain blocks to compare a range
- block to. The encoding time is increased with a
- larger minimum number but the image quality is also
- raised. The compression ratio is not influenced (not
- directly). Default value=4
-
- -s<n> Maximum number of domain blocks to compare a range
- block with. Default value=10
-
- -f<n> Numbers of feature space dimensions to use. Default
- value=3
-
- -r<n> The resolution of the grid division of the feature
- space. A finer division (higher -r<n>) will give a
- faster search in the feature space but also consume
- more memory. Default value=1000
-
- -n<n> The level number of the quadtree partitioning. 0
- gives no partitioning, 1 a one level partitioning
- etc. Default value=0
-
- -i<n> Number of decode iterations. Default value=6
-
- -l<n> The expansion level for the decoding process. 0 yield
- no expansion, 1 the doubling of the image etc.
- Default value=0
-
- -Qa<n> The number of bits used for storing the contrast
- scale value - alpha. Default value=4
-
- -Qd<n> The number of bits used for storing the luminance
- shift value - delta. Default value=6
-
- -Amax<f> Maximum value for the contrast scale. Values above
- 1.0 may give an unstable system. Allowed
- range:[0.0;2.55]. Default value=1.0
-
- -Amin<f> Minimum value for the contrast scale. Default
- value=0.4
-
- -Tm<n> The threshold value for the splitting of a main block
- in the quadtree partitioning to four sub blocks. If
- the total distortion (MSE) exceeds <n> then the block
- is split. Default value:100
-
- -Te<n> The threshold value for the classification of shade
- and edge blocks. Blocks with variance greater than
- <n> are classified as edges. Default value:50
-
- -Tp<n> The threshold for post processing a block. If the
- encoding of an block does not yield an acceptable low
- distortion (MSE) then the encoder has the possibility
- to go out and look for more domain blocks in the
- feature space. This is some times necessary when
- comparing a range block to a very small number of
- domains. Extra search is done if the distortion
- (MSE) exceeds <n>. Default value=-1 i.e. no post
- processing.
-
-
- EXAMPLES
-
- To encode the PGM image 'lenna' at offset (100,50) and size
- (50,70) with a block size of four and step size two using a
- two level quad-tree partitioning and minimum three and
- maximum 9 domain blocks type:
-
- 'limbo2d -ox100 -oy50 -x50 -y70 -b4 -d2 -n2 -m3 -s9 e lenna'
-
- To decode it using only five iteration and producing an
- image two times the original scale:
-
- 'limbo2d -i5 -l1 d lenna'
-
- To encode eight frames of the 'missa' sequence type:
-
- 'limbo3d -z8 e missa'
-
- And to decode it again:
-
- 'limbo3d d missa'
-
-
- FILE ORGANIZATION
-
- Limbo expect to find three special directories from the call
- path:
-
- 'OrgGfx' = original graphics directory with the original
- PPM/ PGM bitmaps to be encoded.
-
- 'CmpGfx' = compare graphics directory with all the decoded,
- analyzed and converted bitmaps.
-
- 'FCCODES' = fractal codes directory with the fractal code
- output produced from the encoding process.
-
-
- SOFTWARE PACKAGE
-
- The limbo software package is freely available at anonymous
- ftp site 'vision.auc.dk' in directory 'pub/Limbo'. Try to
- download it from here - and mail me if your got serious
- problems with the code or problems related to fractal
- compression - I'll be pleased to help.
-
- Limbo is written in ANSI-C and runs on (almost) any machine.
- It is reported to run on Sun Sparc Stations, HP Apollo
- (400/900), Silicon Graphics (Indy/MIPS), i486 (PC-Linux) and
- Amiga (68000/68030). What is needed to compile and run the
- package is an ANSI compatible C compiler (i.e. NOT a PC!).
-
- The name 'limbo' is defined by (from The 'New Webster's
- Dictionary')
-
- "Limbo (Limbou) n.
-
- 1: a dwelling place on the borders of hell to which some
- theolo consign souls who cannot go to heaven through no
- fault of their own, esp. the souls of unbaptized children
- or the souls of the righteous who died before Christ's
- coming.
-
- 2: a place or condition in which people or things lie
- neglected or forgotten.
-
- 3: West indian dance involving bending backward under a
- gradually lowered horizontal bar. It is often performed in
- competition [fr. L. in limbo, on the border, fr. limbus,
- hem, border]."
-
- When you limbo an image object it it is send to some obscure
- place (a binary file called *.lmb) from which it only can
- return with help of an un-'limbo' (decode) command.
-
-
- BUGS
-
- Many!
-
-
- DISCLAIMER OF WARRANTY
-
- This program may be freely copied and distributed for no
- charge providing this header is included. The code may NOT
- be sold commercially without prior permission from the
- author.
-
- This program is distributed without any express or implied
- warranties whatsoever. Because of the diversity of
- conditions and hardware under which this program may be
- used, no warranty of fitness for a particular purpose is
- offered. The user is advised to test the program thoroughly
- before relying on it. The user must assume the entire risk
- of using the program.
-
- REFERENCES
-
- The principles of fractal encoding was taken from the reward
- winning article by A. E. Jaquin:
-
- Arnaud E. Jaquin, "Fractal image coding: A review",
- Proceedings of the IEEE, 81(10):1451-1465, October 1993.
-
- Also see the bibliography in the report "Fast Fractal 2D/3D
- Image Compression" (supplied in the file "ftp://vision.
- auc.dk/pub/Limbo/Fast_Fractal_2D_3D_Image_Compression.ps.gz"
- ). A good website for checking out the development in the
- fractal encoding area is Yval Fishers fractal homepage:
-
- "http://inls.ucsd.edu/Research/Fractals"
- AUTHOR
-
- The program was based on a version developed by Carsten
- Frigaard, Jess Gade, Thomas Therp Hemmingsen and Torben Sand
- in 1993/94 on Aalborg University, Denmark.
-
- The current version was developed and programmed by Carsten
- Frigaard.
-
- Any bug reports, comments, criticisms, etc. is very
- welcomed. Send it to:
-
- E-Mail: Frigaard@dk-online.dk (may change)
-
- S-Mail: Carsten Frigaard
- Vesterbro 127, 907
- DK-9000 Aalborg
- Denmark
-
-